package com.zyf.kafka.producer;

import org.apache.kafka.clients.producer.ProducerInterceptor;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;

import java.util.Map;

/**
 * @author Malegod_xiaofei
 * @create 2024-08-22-22:02
 * 自定义拦截器
 * 1.实现 ProducerInterceptor 接口
 * 2.定义泛型
 * 3.重写方法
 */
public class ValueInterceptorTest implements ProducerInterceptor<String, String> {

    // 发送数据的时候，会调用此方法
    @Override
    public ProducerRecord<String, String> onSend(ProducerRecord<String, String> record) {
        return new ProducerRecord<String, String>(record.topic(), record.key(), record.value() + record.value());
    }

    // 发送数据完毕，服务器返回的响应，会调用此方法
    @Override
    public void onAcknowledgement(RecordMetadata metadata, Exception exception) {

    }

    // 生产者对象关闭的时候，会调用此方法。
    @Override
    public void close() {

    }

    // 创建生产者对象的时候调用
    @Override
    public void configure(Map<String, ?> configs) {

    }
}
